﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using TogheterWeBuyIt.Models;

namespace TogheterWeBuyIt.Controllers
{
	[HandleError]
	public class HomeController : Controller
	{
		CidadeRepository cidadeRep = new CidadeRepository();
        PromocaoRepository promocaoRep = new PromocaoRepository();
        ProdutosRepository produtoRep = new ProdutosRepository();

		public ActionResult Index()
		{
            int count = 5; // Top 5
            IQueryable<Promocao> topPopulatedPromotions = promocaoRep.GetTopPopulatedPromotions(count);
            IQueryable<Produto> topDesiredPromotions = produtoRep.GetTopDesiredProducts(count);
            IQueryable<Promocao> lastPromotions = promocaoRep.GetLastCreatedPromotion(count);
			IQueryable<Produto> lastDesiredPromotions = produtoRep.GetLastDesiredProducts(count);

            HomeIndexModel model = new HomeIndexModel();
            model.TopPromotions = topPopulatedPromotions;
            model.TopProducts = topDesiredPromotions;
			model.LastCreatedPromotions = lastPromotions;
			model.LastFilledProducts = lastDesiredPromotions;

			return View(model);
		}
		[HttpPost]
		public ActionResult Index(FormCollection collection)
		{
			if (collection["hPassagem"] != null)
			{
				cidade origem = cidadeRep.GetCidade(collection["TxbOrigem"]);
				cidade destino = cidadeRep.GetCidade(collection["TxbDestino"]);

                return RedirectToAction("Index", "PassagemAviao", origem != null && destino != null ? new PassagemAviao() { Destino = destino.cod_cidade, Origem = origem.cod_cidade } : null);
			}
			else if (collection["hLivro"] != null)
			{
				string nome = collection["TxbNome"];
				string autor = collection["TxbAutor"];


				return RedirectToAction("Index", "Livro", new Livro() { Nome = nome, Autor = autor });
			}
			else if (collection["hOutros"] != null)
			{
				string nome = collection["TxbNome"];


				return RedirectToAction("Index", "OutrosProdutos", new OutrosProduto() { Nome = nome });
			}
			else
				return View();
		}

		public ActionResult About()
		{
			return View();
		}
	}
}
